package cn.ronghuanet.car.service.impl;

import cn.ronghuanet.car.domain.CarResources;
import cn.ronghuanet.car.dto.SaveCarResourceDTO;
import cn.ronghuanet.car.mapper.CarResourcesMapper;
import cn.ronghuanet.car.service.ICarResourcesService;
import cn.ronghuanet.base.service.impl.IBaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 *  服务实现类
 * </p>
 *
 * @author lijie
 * @since 2023-08-21
 */
@Service
public class CarResourcesServiceImpl extends IBaseServiceImpl<CarResources> implements ICarResourcesService {

    @Autowired
    private CarResourcesMapper carResourcesMapper;

    /**
     * 前端提交到后端的list中不只是新增加的图片,也有可能有之前就保存过的图片,之前就保存过的图片不能重复新增
     * 方案一:根据url一个一个去判断有没有,有就不管,没有就新增,如果数据库有前端而没有传,要将数据库的删除掉  太复杂了
     * 方案二:  先根据车辆ID先全部删除,再批量新增
     * @param dto
     */
    @Override
    public void batchSaveCarResources(SaveCarResourceDTO dto) {
        // 先根据车辆ID删除资源表中所对应的所有的资源
        carResourcesMapper.deleteByCarId(dto.getCarId());

        List<CarResources> list = dto.getList();
        // 批量保存
        // 方案一:循环集合,每次循环都调用一次新增sql
        // 方案二:批量新增语句
        if(list != null && list.size() > 0){
            carResourcesMapper.batchInsert(list);
        }
    }

    @Override
    public List<CarResources> getCarResourceByCarId(Long carId) {
        return carResourcesMapper.getCarResourceByCarId(carId);
    }
}
